New JavaScript Operators

1. Spread Operator (...)


const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const merged = [...arr1, ...arr2]; // Merges two arrays
console.log(merged); // Output: [1, 2, 3, 4, 5, 6]
    

2. Rest Operator (...)


function sum(...numbers) {
    return numbers.reduce((acc, num) => acc + num, 0);
}
console.log(sum(1, 2, 3, 4)); // Output: 10
    

3. Nullish Coalescing Operator (??)


let foo;
let bar = foo ?? 'default';
console.log(bar); // Output: "default"
    

4. Optional Chaining Operator (?.)


const user = { name: "Alice", address: { city: "Wonderland" } };
const city = user.address?.city; // "Wonderland"
const zip = user.address?.zip; // undefined
console.log(city);
console.log(zip);
    

5. Logical Assignment Operators (&&=, ||=, ??=)


let x = 1;
x ||= 2; // x remains 1
let y = 0;
y ||= 2; // y becomes 2
let z = null;
z ??= "default"; // z becomes "default"
console.log(x); 
console.log(y);
console.log(z);
// Output: 1, 2, "default"
    

6. BigInt Operator (n)


const big = 123456789012345678901234567890n; // BigInt
console.log(big); // Output: 123456789012345678901234567890n